/** 
* @Title: TxtAndCsvUtils.java 
* @Package cn.com.qmhd.tools 
* @Description: TODO(读取txt和CSV文档) 
* @author CLL
* @date 2014-11-29 下午01:27:26 
* @version V1.0 
*/
package com.jxj.study.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class TxtAndCsvUtils {
    
    /**
     * 读取txt或者csv文件
     * @param filePath  文件路径
     * @param regex 切割字符串标识
     * @return
     */
    public static List<String[]> read(String filePath,String regex)
    {
        List<String[]> list=new ArrayList<String[]>();
        try
        {
            File file=new File(filePath);
            FileInputStream in=new FileInputStream(file);
            InputStreamReader read=new InputStreamReader(in,"GBK");//ANSI 可以不转码或者用GBK转码，其他需要相应格式转码
            BufferedReader buffer=new BufferedReader(read);
            String lineTxt="";
            String[] item=null;
            while((lineTxt=buffer.readLine())!=null)
            {
                //去除所有空白格
                lineTxt=lineTxt.replaceAll("\\s*", "");
                //如果不是空白行写入list之中
                if(!lineTxt.isEmpty())
                {
                    item=lineTxt.split(regex);
                    if(item!=null&&item.length>0){
                        list.add(item);
                    }
                }
                item=null;
            }
            buffer.close();
            
            return list;
            
        }
        catch(Exception e)
        {
            //ExceptionHeading.getException(this.getClass().getName(), e, "读取文件发生异常");
            e.printStackTrace();
        }
        return null;
    }
    
}